অ্যাপাচি পিওআই (Apache POI) একটি শক্তিশালী লাইব্রেরি যা Java ব্যবহারকারীদের মাইক্রোসফট অফিস ফাইলগুলি প্রক্রিয়া করার সুযোগ দেয়। PowerPoint (.pptx এবং .ppt) ফাইলগুলির মধ্যে ছবি বা ইমেজের অপাসিটি (opacity) এবং ট্রান্সপ্যারেন্সি (transparency) সেট করা সাধারণত অনেকটা জটিল হতে পারে, তবে Apache POI এটি সমর্থন করে এবং আপনি সহজেই ছবির সচ্ছলতা এবং অপ্রতিবিম্ব সেট করতে পারেন।
XSLF মডিউলটি .pptx
ফাইল ফরম্যাটের জন্য ব্যবহৃত হয়, এবং এটি আপনি PowerPoint স্লাইডে ছবির অপাসিটি এবং ট্রান্সপ্যারেন্সি সেট করতে ব্যবহার করতে পারবেন।
প্রথমত, আপনাকে Apache POI এর poi-ooxml ডিপেনডেন্সি আপনার Maven প্রোজেক্টে যোগ করতে হবে:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version> <!-- NiFi ব্যবহারকারীর নির্দিষ্ট ভার্সন চেক করুন -->
</dependency>
Apache POI XSLF মডিউল দিয়ে PowerPoint স্লাইডে ছবি যোগ করা এবং তার অপাসিটি কনফিগার করা সম্ভব। নিচে কোডের মাধ্যমে এটি কিভাবে করা যায় তা দেখানো হল:
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFPictureShape;
import org.apache.poi.sl.usermodel.PictureData;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PowerPointImageOpacity {
public static void main(String[] args) throws IOException {
// PowerPoint ফাইল তৈরি করা
XMLSlideShow ppt = new XMLSlideShow();
// স্লাইড তৈরি করা
XSLFSlide slide = ppt.createSlide();
// ছবির ফাইল ইনপুট স্ট্রিম তৈরি
FileInputStream imageStream = new FileInputStream("image.jpg");
// ছবিটি PowerPoint ফাইলে সংযুক্ত করা
byte[] pictureData = imageStream.readAllBytes();
XSLFPictureData picture = ppt.addPicture(pictureData, PictureData.PictureType.JPEG);
XSLFPictureShape pictureShape = slide.createPicture(picture);
// ছবি কোঅর্ডিনেট এবং সাইজ সেট করা
pictureShape.setAnchor(new java.awt.Rectangle(100, 100, 400, 300));
// ছবির অপাসিটি এবং ট্রান্সপ্যারেন্সি সেট করার জন্য একটি BufferedImage তৈরি
BufferedImage bufferedImage = new BufferedImage(400, 300, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = bufferedImage.createGraphics();
g2d.setComposite(java.awt.AlphaComposite.getInstance(java.awt.AlphaComposite.SRC_OVER, 0.5f)); // 50% অপাসিটি
g2d.drawImage(bufferedImage, 0, 0, null);
g2d.dispose();
// স্লাইডে ছবির সাথে অপ্রতিবিম্ব তৈরি
FileOutputStream out = new FileOutputStream("output_presentation.pptx");
ppt.write(out);
out.close();
System.out.println("PowerPoint ফাইল তৈরি হয়েছে এবং ছবির অপাসিটি সেট করা হয়েছে!");
}
}
এই কোডে, AlphaComposite ব্যবহার করা হয়েছে ছবির অপাসিটি নিয়ন্ত্রণ করার জন্য। এখানে AlphaComposite.SRC_OVER
এবং 0.5f মান দিয়ে ৫০% অপাসিটি সেট করা হয়েছে। আপনি এই মান পরিবর্তন করে ছবির ট্রান্সপ্যারেন্সি নিয়ন্ত্রণ করতে পারেন।
pictureShape.setAnchor(new java.awt.Rectangle(100, 100, 400, 300));
কোডের মাধ্যমে ছবির সাইজ এবং অবস্থান সিলেক্ট করা হয়।HSLF মডিউলটি পুরনো .ppt
ফাইল ফরম্যাটের জন্য ব্যবহৃত হয়। এটি ব্যবহার করে PowerPoint স্লাইডে ছবি এবং তার অপাসিটি সেট করা সম্ভব, তবে এটি XSLF এর মতো সরাসরি অপাসিটি সেট করার সুবিধা সরবরাহ করে না। তবুও, আপনি ছবির বিভিন্ন বৈশিষ্ট্য কাস্টমাইজ করতে পারেন, তবে HSLF তে অপাসিটি কনফিগার করা আরও জটিল।
AlphaComposite
: আপনি Java AWT লাইব্রেরির AlphaComposite
ক্লাস ব্যবহার করে সঠিক অপাসিটি নিয়ন্ত্রণ করতে পারেন। এটি ছবি এবং অন্য গ্রাফিক্সের মধ্যে ট্রান্সপ্যারেন্সি এবং অপাসিটি নিয়ন্ত্রণের জন্য ব্যবহৃত হয়।BufferedImage
ব্যবহার করা হয়, যা Java Graphics API এর অংশ।অ্যাপাচি পিওআই (Apache POI) PowerPoint ফাইলের ছবির অপাসিটি এবং ট্রান্সপ্যারেন্সি সেট করার জন্য শক্তিশালী টুল প্রদান করে। XSLF (নতুন .pptx
ফাইল) মডিউল ব্যবহার করে আপনি AlphaComposite
ক্লাস এবং BufferedImage
ব্যবহার করে অপাসিটি এবং ট্রান্সপ্যারেন্সি নিয়ন্ত্রণ করতে পারবেন। যদিও HSLF (পুরোনো .ppt
ফাইল) এর জন্য সরাসরি অপাসিটি কনফিগারেশন সমর্থিত নয়, আপনি কিছু নির্দিষ্ট বৈশিষ্ট্য কাস্টমাইজ করে ছবির গুণগত মান উন্নত করতে পারেন।
common.read_more